scrapy -- CrawlSpider类
全部标签 我正在处理Scrapy、Privoxy和Tor。我已经全部安装并正常工作。但是Tor每次都连接同一个IP,所以我很容易被禁止。是否可以告诉Tor每X秒或连接重新连接一次?谢谢!编辑配置:对于用户代理池,我这样做了:http://tangww.com/2013/06/UsingRandomAgent/(我必须按照评论中的说明放置一个_init_.py文件),对于Privoxy和Tor,我遵循了http://www.andrewwatters.com/privoxy/(我必须使用终端手动创建私有(private)用户和私有(private)组)。它奏效了:)我的蜘蛛是这样的:fromscr
我正在尝试创建这个Redditscraper使用Python的Scrapy框架。我使用CrawSpider爬取了Reddit及其子版block。但是,当我遇到包含成人内容的页面时,该网站会要求我提供cookieover18=1。所以,我一直在尝试为蜘蛛发出的每个请求发送一个cookie,但是,它没有成功。这是我的爬虫代码。如您所见,我尝试使用start_requests()方法为每个蜘蛛请求添加一个cookie。这里有人能告诉我怎么做吗?或者我做错了什么?fromscrapyimportSpiderfromscrapy.spidersimportCrawlSpider,Rulefrom
我正在尝试获取类的div:“产品”。问题是,某些类为“product”的div也有类“product-small”。所以当我使用xpath('//div[@class='product']'),它只捕获一个类别的div,而不是多个。我怎样才能用scrapy做到这一点?例子:渔获量:没有捕捉到: 最佳答案 这也可以用xpath来解决。你只需要使用contains()://div[contains(concat('',normalize-space(@class),''),'product')]不过,是的,CSS选择器选项更加紧凑和可读
在呈现HTML后,我希望网站上的所有文本都可见。我在使用Scrapy框架的Python中工作。使用xpath('//body//text()')我可以得到它,但是使用HTML标签,我只想要文本。有什么解决办法吗? 最佳答案 最简单的选择是extract//body//text()和join找到的一切:''.join(sel.select("//body//text()").extract()).strip()其中sel是Selector实例。另一种选择是使用nltk的clean_html():>>>importnltk>>>html
例如:scrapyshellhttp://scrapy.org/content=hxs.select('//*[@id="content"]').extract()[0]printcontent然后,我得到以下原始HTML代码:WelcometoScrapyWhatisScrapy?Scrapyisafasthigh-levelscreenscrapingandwebcrawlingframework,usedtocrawlwebsitesandextractstructureddatafromtheirpages.Itcanbeusedforawiderangeofpurposes,
我正在从脚本运行scrapy,但它所做的只是激活蜘蛛。它不会通过我的项目管道。我读过http://scrapy.readthedocs.org/en/latest/topics/practices.html但它没有说明包含管道。我的设置:Scraper/scrapy.cfgScrapyScript.pyScraper/__init__.pyitems.pypipelines.pysettings.pyspiders/__init__.pymy_spider.py我的脚本:fromtwisted.internetimportreactorfromscrapy.crawlerimportC
我有一个监听redis队列的scrapy_redis蜘蛛池(蜘蛛的数量并不总是相同的)。该队列由另一个脚本提供。当redis队列中没有任何内容时,我希望我的蜘蛛在X分钟不活动后停止。我已经在我的settings.py中设置了SCHEDULER_IDLE_BEFORE_CLOSE,但它似乎不起作用。这是我的settings.py:SCHEDULER="scrapy_redis.scheduler.Scheduler"DUPEFILTER_CLASS="scrapy_redis.dupefilter.RFPDupeFilter"SCHEDULER_IDLE_BEFORE_CLOSE=10R
我是Scrapy的新手,我有蜘蛛代码classExample_spider(BaseSpider):name="example"allowed_domains=["www.example.com"]defstart_requests(self):yieldself.make_requests_from_url("http://www.example.com/bookstore/new")defparse(self,response):hxs=HtmlXPathSelector(response)urls=hxs.select('//div[@class="bookListingBook
我有一个scrapy蜘蛛,它使用在Dockerlocalhost:8050上运行的splash在抓取之前呈现javascript。我正在尝试在heroku上运行它,但不知道如何配置heroku以在运行我的网络之前启动docker以运行splash:scrapycrawlabcdyno。非常感谢任何指南! 最佳答案 据我所知,您的期望:通过Docker容器在Heroku上运行的Splash实例在Herokudyno中运行的Web应用程序(Scrapyspider)飞溅实例确保您可以拥有dockerCLI和heroku已安装CLI见He
需要scrapy中的示例,了解如何从一个页面获取链接,然后点击此链接,从链接页面获取更多信息,并与第一页的一些数据合并。 最佳答案 在首页部分填写您的项目,然后将其放入您请求的元数据中。当调用下一页的回调时,它可以将部分填充的请求,放入更多的数据,然后返回。 关于python-如何将目标页面的结果合并到scrapy中的当前页面?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/84